home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / COMPILER / SATHER / !Sather / Library / System / sa / r_test next >
Text File  |  1996-04-09  |  2KB  |  45 lines

  1. ---------------------------> Sather 1.1 source file <--------------------------
  2. -- Copyright (C) International Computer Science Institute, 1995.  COPYRIGHT  --
  3. -- NOTICE: This code is provided "AS IS" WITHOUT ANY WARRANTY and is subject --
  4. -- to the terms of the SATHER LIBRARY GENERAL PUBLIC LICENSE contained in    --
  5. -- the file "Doc/License" of the Sather distribution.  The license is also   --
  6. -- available from ICSI, 1947 Center St., Suite 600, Berkeley CA 94704, USA.  --
  7. --------> Please email comments to "sather-bugs@icsi.berkeley.edu". <----------
  8.  
  9.  
  10. class R_TEST is -- thread safe version of TEST
  11.                -- in the sense that more than one thread can call test(),
  12.            -- but neither finish nor test_class are thread safe.
  13.            -- It is also not possible to instantiate more than
  14.            -- one object of this class.
  15.    include TEST test->t_test,
  16.        unchecked_test->t_unchecked_test,
  17.        class_name->t_class_name;
  18.    -- actually we should use a MUTEX and the standard lock stmt. But MUTEX
  19.    -- is already a very highlevel construct, so we use a low level
  20.    -- lock here and are therefor able to test MUTEX too with this classs.
  21.    shared lck:LL_LOCK;
  22.  
  23.    test(doc_ds,does_ds,should_ds:$STR) is
  24.       -- Perform the test with the description `doc', return value `does',
  25.       -- and desired return value `should'. Keep track of failures.
  26.       lck.lck;
  27.          t_test(doc_ds,does_ds,should_ds);
  28.       lck.unlck;
  29.    end;
  30.    
  31.    unchecked_test(doc_ds,does_ds,should_ds:$STR) is
  32.       -- Perform the test with the description `doc', return value `does',
  33.       -- and desired return value `should'. Don't keep track of failures.
  34.       lck.lck;
  35.          t_unchecked_test(doc_ds,does_ds,should_ds);
  36.       lck.unlck;
  37.    end;
  38.  
  39.    class_name(nm:STR) is
  40.       if void(lck) then lck:=#LL_LOCK; end;
  41.       t_class_name(nm);
  42.    end;
  43. end;
  44. -------------------------------------------------------------------
  45.